
package py.com.erpone.session.dm.list;

import java.util.List;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import py.com.erpone.entity.dm.Presentacion;
import py.com.erpone.entity.dm.Producto;
import py.com.erpone.entity.dm.Proveedor;

@Stateless
@LocalBean
@Named
public class ProductoList {

	@PersistenceContext
	private EntityManager em;


	@SuppressWarnings("unchecked")
	public List<Producto> findAllWithDetail(){
		List<Producto> result=(List<Producto>)em.createNamedQuery("productosDetalles.all").getResultList();
		return result;
	}
	@SuppressWarnings("unchecked")
	public List<Producto> findAll(){
		List<Producto> result=(List<Producto>)em.createNamedQuery("productos.all").getResultList();
		return result;
	}

	@SuppressWarnings("unchecked")
	public List<Presentacion> findAllPresentaciones(long id){

/*		return (List<Presentacion>) em.createNamedQuery("Presentacion.presentaciones")
                .setParameter("id", id)
                .getResultList();*/
		String sql = " select p.* " +
					 " from Producto_Presentacion b " +
					 " join Presentacion p on b.presentacion_id = p.id" +
					 " where b.producto_id = ? " +
					 " order by b.producto_id";

		Query query = em.createNativeQuery(sql, Presentacion.class);
		query.setParameter(1, id);
		List<Presentacion> result = query.getResultList();
		return result;
	}

	public Producto findById(Long id){
		return em.find(Producto.class, id);
	}

}
